package com.itheima.arraylist;

import java.util.ArrayList;

public class ArrayListDemo2 {
    public static void main(String[] args) {
        // 目标：掌握从容器中删除数据的技巧。
        // 1、准备一个集合，存储一堆商品
        ArrayList<String> list = new ArrayList<>();
        list.add("Java入门");
        list.add("宁夏枸杞");
        list.add("黑枸杞");
        list.add("人字拖");
        list.add("特技枸杞");
        list.add("枸杞子");
        System.out.println(list);
        //  list = [Java入门, 宁夏枸杞, 黑枸杞, 人字拖, 特技枸杞, 枸杞子]
        //  list = [Java入门, 宁夏枸杞, 黑枸杞, 人字拖, 特技枸杞, 枸杞子]
        //                     i
        // 遍历集合中的每个数据，只要这个数据包含枸杞，我们就从集合中删除这个数据。
        for (int i = 0; i < list.size(); i++) {
            String name = list.get(i);
            if(name.contains("枸杞")) {
                // 从集合中直接干掉这个数据
                list.remove(name);
                i--; // 解决方案一：删完数据后回退一步，才可以保证成功删除数据，不会漏删
            }
        }
        System.out.println(list);

        System.out.println("-----------------------------------------------------------------------------");

        ArrayList<String> list2 = new ArrayList<>();
        list2.add("Java入门");
        list2.add("宁夏枸杞");
        list2.add("黑枸杞");
        list2.add("人字拖");
        list2.add("特技枸杞");
        list2.add("枸杞子");
        // 解决方案二：从后面倒着遍历并删除就没有问题了。
        // list2 = [Java入门, 宁夏枸杞, 黑枸杞, 人字拖, 特技枸杞, 枸杞子]
        // list2 = [Java入门, 人字拖]
        //             i
        for (int i = list2.size() - 1; i >= 0; i--) {
            String name = list2.get(i);
            if(name.contains("枸杞")) {
                // 从集合中直接干掉这个数据
                list2.remove(name);
            }
        }
        System.out.println(list2);
    }
}
